﻿
using System;
using System.Collections.Generic;

namespace FlashPay.Service.Company
{
    using FlashPay.Entity;
    using FlashPay.Entity.Request.Company;
    using FlashPay.Entity.Request.ExtApi;
    using FlashPay.Entity.Response.Company;
    using FlashPay.Entity.Response.ExtApi;

    public interface CompanyService
    {
        void AddCompany(CompanyRequest<String> model);
        void EditCompany(CompanyRequest<String> model);
        void ChangeCompanyStatus(CompanyRequest<String> model);
        void DeleteCompany(CompanyRequest<String> model);
        void GetCompany(CompanyRequest<List<CompanyResponse>> model);
        void CheckCompanyName(CompanyRequest<Boolean> model);
        /// <summary>
        /// 获取所有公司
        /// </summary>
        /// <returns>List<Company></returns>
        List<EF.Models.Company> GetList();

        /// <summary>
        /// 获取授权、推荐地址
        /// </summary>
        /// <returns></returns>
        JResult<ExtApiResponse> GeteExtApi(int companyId);

        /// <summary>
        /// 获取推送地址
        /// </summary>
        /// <param name="request"></param>
        ExtApiPushUrlResponse GetExtApiPushUrl(int id);

        /// <summary>
        /// 授权编辑
        /// </summary>
        /// <param name="request"></param>
        JResult ExtApiCompatEdit(List<ExtApiCompatEditRequest> request);

        /// <summary>
        /// 推送地址新增或编辑
        /// </summary>
        /// <param name="request"></param>
        JResult ExtApiPushUrlAddOrEdit(ExtApiPushUrlAddOrEditRequest request);

        /// <summary>
        /// 推送地址删除
        /// </summary>
        /// <param name="request"></param>
        JResult ExtApiPushUrlDel(ExtApiPushUrlAddOrEditRequest request);
    }
}
